Technologies for using image data analysis to assess and classify hail damage

ABSTRACT

Systems and methods for analyzing image data to assess property damage are disclosed. According to certain aspects, a server may analyze segmented digital image data of a roof of a property using a convolutional neural network (CNN). The server may extract a set of features from a set of regions output by the CNN. Additionally, the server may analyze the set of features using an additional image model to generate a set of outputs indicative of a confidence level that actual hail damage is depicted in the set of regions.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S.application Ser. No. 17/199,203, filed on Mar. 11, 2021 and entitled“TECHNOLOGIES FOR USING IMAGE DATA ANALYSIS TO ASSESS AND CLASSIFY HAILDAMAGE,” which is a continuation of and claims priority to U.S. Pat. No.10,977,490, issued on Apr. 13, 2021 and entitled “TECHNOLOGIES FOR USINGIMAGE DATA ANALYSIS TO ASSESS AND CLASSIFY HAIL DAMAGE”, the entirety ofwhich is incorporated herein by reference.

TECHNICAL FIELD

The present disclosure is directed to analyzing image data toautomatically assess and classify hail damage. More particularly, thepresent disclosure is directed to systems and methods for analyzingdigital image data that depicts a set of properties to identify andclassify hail damage that may be depicted in the digital image data.

BACKGROUND

Individuals such as homeowners typically have insurance policies fortheir properties that provide financial reimbursement to the individualsin the event of damage or theft to the properties and/or their contents.For example, hail storms may produce hail that damages the roofs ofproperties. In some conventional techniques, during processing of aninsurance claim, a claims specialist or roof inspector manually inspectsa roof to assess damage to the roof. In other conventional techniques,image data may be manually examined by claims specialists to detectdamage to properties. In particular, aerial images captured by unmannedaerial vehicles (UAVs; i.e., “drones”) and/or satellites from a vantagepoint located above a property may be used in the image examination byclaims specialists.

However, there are limitations in these conventional techniques. Inparticular, it is inefficient, time-consuming, and expensive to haveindividuals manually inspect properties for damage. Further, claimsspecialists encounter difficulties in examining image data to assesscertain types of property damage (e.g., hail damage), especially from anentire view of a property's roof and without specific regions to targetor assess.

Accordingly, there is an opportunity to incorporate technologies toanalyze overhead image data to automatically assess and classifyproperty damage, such as hail damage.

BRIEF SUMMARY

In one embodiment, a computer-implemented method in a processing serverof analyzing image data to automatically assess hail damage to aproperty is provided. The method may include: accessing digital imagedata depicting a roof of the property; segmenting, by a processor, thedigital image data into a set of digital images depicting a respectiveset of portions of the roof of the property; analyzing, by the processorusing a convolutional neural network (CNN), the set of digital images toidentify a set of regions of potential hail damage; extracting, by theprocessor, a set of features from each of the set of regions ofpotential hail damage; and analyzing, by the processor, the set offeatures using a classification model to generate a set of outputsindicating a presence of hail damage in the set of digital images.

In another embodiment, a system for analyzing image data toautomatically assess hail damage to a property is provided. The systemmay include a memory configured to store non-transitory computerexecutable instructions, and a processor interfacing with the memory.The processor may be configured to execute the non-transitory computerexecutable instructions to cause the processor to: access digital imagedata depicting a roof of the property, segment the digital image datainto a set of digital images depicting a respective set of portions ofthe roof of the property, analyze, using a convolutional neural network(CNN), the set of digital images to identify a set of regions ofpotential hail damage, extract a set of features from each of the set ofregions of potential hail damage, and analyze the set of features usinga classification model to generate a set of outputs indicating apresence of hail damage in the set of digital images.

In a further embodiment, a non-transitory computer-readable storagemedium configured to store instructions is provided. The instructionswhen executed by a processor may cause the processor to performoperations comprising: accessing digital image data depicting a roof ofa property; segmenting the digital image data into a set of digitalimages depicting a respective set of portions of the roof of theproperty; analyzing, using a convolutional neural network (CNN), the setof digital images to identify a set of regions of potential hail damage;extracting a set of features from each of the set of regions ofpotential hail damage; and analyzing the set of features using aclassification model to generate a set of outputs indicating a presenceof hail damage in the set of digital images.

BRIEF DESCRIPTION OF THE DRAWINGS

The figures described below depict various aspects of the system andmethods disclosed herein. It should be understood that each figuredepicts an embodiment of a particular aspect of the disclosed system andmethods, and that each of the figures is intended to accord with apossible embodiment of thereof. Further, wherever possible, thefollowing description refers to the reference numerals included in thefollowing figures, in which features depicted in multiple figures aredesignated with consistent reference numerals.

FIG. 1 depicts an overview of an exemplary system of componentsconfigured to facilitate various functionalities, in accordance withsome embodiments.

FIG. 2 depicts an exemplary representation of various components andfunctionalities associated with the systems and methods, in accordancewith some embodiments.

FIG. 3 depicts an example image of a roof of a property and elementsthereof, in accordance with some embodiments.

FIG. 4 depicts an exemplary representation of a classification model andfunctionalities thereof, in accordance with some embodiments.

FIG. 5 depicts an example of feature extraction functionalities, inaccordance with some embodiments.

FIG. 6 depicts an exemplary representation of extracted color features,in accordance with some embodiments.

FIGS. 7A and 7B depict exemplary representations of extracted texturefeatures, in accordance with some embodiments.

FIG. 8 depicts an exemplary representation of extracted shape features,in accordance with some embodiments.

FIG. 9 depicts a flow chart of an exemplary method for analyzing imagedata to automatically assess hail damage to a property, in accordancewith some embodiments.

FIG. 10 is a block diagram of an exemplary computer server, inaccordance with some embodiments.

DETAILED DESCRIPTION

The present embodiments may relate to, inter alia, analyzing image datato identify and assess property damage such as hail damage.Conventionally, property damage is assessed through manual inspection ofthe property or, in some cases, examination of image data depicting theproperty. However, these techniques are expensive and inefficient, amongother drawbacks. To alleviate these shortcomings, the presentembodiments incorporate certain digital image processing and modelanalyses to effectively, efficiently, and accurately identify and assessproperty damage.

According to certain aspects, systems and methods may train a set ofimage models that may be used to classify property damage that may becaused by a hail event. Additionally, the systems and methods maycapture and/or access digital image data that depicts a roof of theproperty, and analyze the digital image data using the trained imagemodels. In particular, the systems and methods initially analyze thedigital image data using a convolutional neural network (CNN), extract aset of features resulting from the CNN analysis, and analyze the set offeatures using a classification model to generate a set of outputs thatare indicative of a presence of hail damage to the roof of the property.The systems and methods may additionally facilitate insurance claimcalculations and functionalities based on any detected presence of haildamage.

The systems and methods therefore offer numerous benefits. Inparticular, by utilizing multiple image models in analyzing image data,the systems and methods are able to accurately identify and assess haildamage to properties. Additionally, the image analyses may eliminate theneed for manual inspection and/or manual examination of images. Thisreduces costs and expenses, savings which ultimately may be passed downto customers. Moreover, customers may experience shorter times between ahail damage event and a processing of an insurance claim. It should beappreciated that other benefits are envisioned.

The systems and methods discussed herein address a challenge that isparticular to technology associated with assessing property damage. Inparticular, the challenge relates to a difficulty in effectively andefficiently identifying and assessing property damage that may resultfrom certain events. In conventional situations, entities rely on humanjudgment to identify and classify property damage, which is oftentime-consuming and/or inaccurate. In contrast, the systems and methodsutilize multiple image models in a specific, sequential manner toanalyze image data depicting properties and assess hail damage that maybe depicted in the image data. Therefore, because the systems andmethods employ the collection, analysis, and communication of imagedata, the systems and methods are necessarily rooted in computertechnology in order to overcome the noted shortcomings that specificallyarise in the realm of technology associated with assessing propertydamage.

FIG. 1 illustrates an overview of a system 100 of components configuredto facilitate the systems and methods. It should be appreciated that thesystem 100 is merely an example and that alternative or additionalcomponents are envisioned.

As illustrated in FIG. 1 , the system 100 may include a set ofproperties 101, 102, each of which may be any type of building,structure, or the like. For example, the properties 101, 102 may be anysingle- or multi-unit house, flat, townhome, apartment building, condobuilding, commercial building, auxiliary building for a property (e.g.,a garage), or the like. FIG. 1 depicts two properties 101, 102, howeverit should be appreciated that fewer or more properties are envisioned.

The system 100 may further include a set of aerial vehicles 103, 104capable of any type of air travel or flight. According to embodiments,the aerial vehicles 103, 104 may be unmanned aerial vehicles (UAVs; aka“drones”) or may be manned by a pilot (e.g., airplane, helicopter,etc.). If the aerial vehicles 103, 104 is a UAV(s), the UAV(s) may beautonomously controlled or may be controlled remotely. Each of the setof aerial vehicles 103, 104 may be configured with one or more imagesensors that may be capable of capturing digital image data, where theimage sensor(s) may be controlled autonomously, or locally or remotelyby an individual. It should be appreciated that each of the set ofaerial vehicles 103, 104 may be configured with one of more imagesensors, video recorders, and/or cameras. In some embodiments, each ofthe set of aerial vehicles 103, 104 may be configured with a memorydevice for storing any captured image data. FIG. 1 depicts two aerialvehicles 103, 104, however it should be appreciated that fewer or moreaerial vehicles are envisioned.

In operation, the image sensor(s) (or cameras) of the set of aerialvehicles 103, 104 may be configured to capture digital images thatdepict various portions of the properties 101, 102. In particular, thedigital images may depict exterior portions of the properties 101, 102,such as roofs, entryways, exterior materials, foundations, yards,auxiliary buildings, and/or any other physical structures or elementsassociated with the properties 101, 102 that may be visible.

In addition or as an alternative to aerial digital images of theproperties 101, 102 being captured by one or more drones or aerialvehicles 103, 104, additional or alternate digital images of theproperties 101, 102 may be acquired in other manners. For instance,digital images of the properties 101, 102 may be acquired by one or moreimage sensors or cameras of a smart or autonomous vehicle, a vehicledashboard mounted camera, a user mobile device or camera, image sensorsassociated with surrounding properties, and/or internet websites orsocial media services 106.

The system 100 may also include a server computer 115 that maycommunicate with the aerial vehicles 103, 104 and with thewebsites/internet services 106 via one or more networks 110. In certainembodiments, the network(s) 110 may support any type of datacommunication via any standard or technology (e.g., GSM, CDMA, TDMA,WCDMA, LTE, EDGE, OFDM, GPRS, EV-DO, UWB, Internet, IEEE 802 includingEthernet, WiMAX, Wi-Fi, Bluetooth, and others). The server computer 115may be configured to interface with or support a memory or storage 113capable of storing various data. In particular, the memory or storage113 may store data associated with image models such as one or moreCNNs, classification model(s), and/or the like. In embodiments, theserver computer 115 may train the image models using a set of trainingdata, and store the trained image models in the memory or storage 113.Additionally, the memory or storage 113 may store previously-capturedimages of the properties 101, 102.

According to some embodiments, the server computer 115 may be associatedwith an entity, business, company, enterprise, operation, individual, orthe like, that may offer or provide services for customers or clients.For example, the server computer 115 may be associated with an insuranceprovider.

In operation, the image sensor(s) (or cameras) of the aerial vehicles103, 104 may capture digital image data that depicts various portions ofthe properties 101, 102, and may transmit the digital image data to theserver computer 115 via the network(s) 110. In embodiment, an additionalelectronic device (not shown in FIG. 1 ; e.g., a laptop computer) mayreceive the digital image data from the aerial vehicles 103, 104 andtransmit the digital image data to the server 115 via the network(s)110. The server computer 115 may process the digital image data (eithersolely or in conjunction with digital image data acquired via othersources, such as the websites/internet services 106, mobile devices,autonomous vehicles, or neighboring properties) to segment the digitalimage data into a set of images depicting different portion or sectionsof the properties 101, 102 (e.g., the roofs of the properties 101, 102).

Additionally, the server computer 115 may analyze the digital image datausing the stored image models. In particular, the server computer 115may analyze the digital image data using a CNN to identify a set ofregions in the digital image data that depict potential hail damage.Additionally, the server computer 115 may extract a set of features fromeach of the set of regions, and input the set of features into aclassification model to generate a set of outputs that are indicative ofa presence of hail damage in the digital image data. The server computer115 may facilitate additional functionalities, including calculatingestimated damage amounts, facilitating insurance processing, and/or thelike. These and additional functionalities are described in furtherdetail with respect to the subsequent figures.

FIG. 2 depicts an example representation 200 of various components andfunctionalities associated with the systems and methods. It should beappreciated that the various components of the representation 200 andthe connections therebetween are merely exemplary, and that additionaland alternative components are envisioned. In embodiments, thecomponents and functionalities of the representation 200 may beimplemented on and supported by one or more computing devices, such asthe server computer 115 as discussed with respect to FIG. 1 .

As depicted in FIG. 2 , the representation 200 may be segmented into animage training and analyzing section 201 and an image processing section210, although the components and functionalities associated therewithmay overlap and be interchangeable. The section 201 may include a set oftraining images 202, a set of training labels 203, and a hail damagedetection model 204. In embodiments, the hail damage detection model 204may incorporate a convolutional neural network (CNN) that may consist ofmultiple layers, including an input layer, an output layer, and a set ofhidden layers.

The hail damage detection model 204 may be trained using the set oftraining images 202 and the set of training labels 203, therebygenerating the weights associated with the layers of the hail damagedetection model 204. According to embodiments, the set of trainingimages 202 may include images that may or may not depict hail damage toproperties, and the set of training labels 203 may include dataidentifying whether the set of training images 202 actually depict haildamage to properties. Although the hail damage detection model 204 isdescribed as being a CNN, it should be appreciated that other types ofneural networks are envisioned (e.g., other feedforward neural networks,recurrent neural networks, etc.).

The image processing section 210 may include digital image data 213 thatmay depict a portion of a property. For example, as shown in FIG. 2 ,the digital image data 213 may depict a roof of a property, and may becaptured by an aerial vehicle such as a UAV (or other image capturingcomponent). The digital image data 213 as depicted in FIG. 2 is merelyused for illustrative purposes, and it should be appreciated thatadditional and alternative digital image data is envisioned.

A sliding window image cropper 212 component may be used to crop thedigital image data 213 into a set of digital images 211. In particular,the sliding window image cropper 212 may crop the digital image data 213using a sliding window 214 component that may be configured to segmentthe digital image data 213 according to the shape of the sliding window214. For example, FIG. 2 depicts a set of digital images 215, 216, 217that are included in the set of digital images 211, each one a segmentof the digital image data 213.

The set of digital images 211 may be input into the hail damagedetection model 204, which may be subsequent to when the hail damagedetection model 204 is trained with the set of training images 202 andthe set of training labels 203. The hail damage detection model 204 mayanalyze the set of digital images 211 and output a set of data 218representative of a set of regions depicted in the set of digital images211 that the hail damage detection model 204 estimates have experiencedhail damage. In embodiments, the set of regions of the set of data 218may include regions(s) that have actually experienced hail damage and/orregion(s) that have not experienced hail damage. Additionally, not everydigital image in the set of digital images 211 may be represented by theset of regions in the set of data 218 (and conversely, each of thedigital images 211 may be represented by the set of regions in the setof data 218).

The set of data 218 may be input into a feature extractor component 205.In embodiments, the feature extractor component 205 may be configured toanalyze the set of data 218 to extract a set of features from the set ofregions that may be indicative of actual hail damage to thecorresponding region(s). In particular, the set of features may includetextual features extracted using grey-scale co-occurrence matrix andinformation theory, color features extracted using color histograms andstatistics, and/or shape features using connected components and aspectratios. It should be appreciated that the set of features may includeadditional or alternative features.

The feature extractor component 205 may output a set of data 219representative of the set of features extracted from the set of data218. The set of data 219 may be input into a classification model 206.In an implementation, the set of data 218 may additionally oralternatively be input into the classification model 206. According toembodiments, the classification model 206 may be a machine learningmodel that may employ a gradient-boosting classifier which may, based onthe extracted set of features included in the set of data 219, output aconfidence level for each of the regions in the set of regions includedin the set of data 218. According to embodiments, the confidence levelindicates a confidence that the corresponding region of the set ofregions depicts hail damage, where the confidence level may be on ascale (e.g., a numeric value ranging from 1 to 10), binary (e.g., a “0”or “1”), or another convention.

The classification model 206 may output a set of data 207 indicative ofregion(s) of the set of regions that are classified as not having haildamage (i.e., having a confidence level that does not meet or exceed athreshold value), and a set of data 208 indicative of region(s) of theset of regions that are classified as having hail damage (i.e., having aconfidence level that meets or exceeds a threshold value).

A computing device (e.g., the server computer 115) may facilitateadditional functionalities based on the sets of data 207, 208. Forexample, the computing device may calculate an estimated damage amountto the roof of a property depicted in the digital image data 213 basedon the hail damage indicated in the set of data 208, and/or facilitatepreparation of an insurance claim according to the estimated damageamount. It should be appreciated that additional functionalities areenvisioned.

FIG. 3 depicts an exemplary image 300 of a roof of a property. The image300 includes three (3) regions that were identified as potentiallydepicting hail damage (in particular, regions 301, 302, and 303). Eachof the regions 301, 302, 303 depicts anomalies in a roof, whichtypically consists of uniform and multiple shingles, tiles, slate, etc.As depicted in FIG. 3 , the regions 301 and 303 depict seams or edgesthat delineate roof shingles, and thus do not depict actual hail damage.In contrast, the region 302 depicts actual hail damage.

In embodiments, when the image 300 is input into the hail damagedetection model 204 as discussed with respect to FIG. 2 , the haildamage detection model may identify the regions 301, 302, 303 as thosethat may depict hail damage. After the feature extractor 205 extractscertain features from the regions 301, 302, 303, the resulting data maybe input into the classification model 206, which determines aconfidence level for each of the regions 301, 302, 303, which mayrepresent a likelihood that the corresponding regions 301, 302, 303depict actual hail damage. For example, if the confidence level isbinary, the classification model 206 may output a “1” for the region302, and a “0” for each of the regions 301 and 303.

FIG. 4 depicts a representation 400 of certain components associatedwith a classification model, such as the classification model 206 asdiscussed with respect to FIG. 2 . It should be appreciated that thevarious components of the representation 400 and the connectionstherebetween are merely exemplary, and that additional and alternativecomponents are envisioned.

The representation 400 includes an exemplary raw image 401 and arepresentation 402 of hail damage prediction corresponding to the rawimage 401. In embodiments, the representation 402 may be output by a CNNor other image model (such as the hail damage detection model 204 asdiscussed with respect to FIG. 2 ). As depicted in FIG. 4 , the rawimage 401 includes a region 403 depicting hail damage, and a region 404depicting an edge or seam that delineates roof shingles. Accordingly,the representation 402 includes three (3) regions that correspond to theregions 403, 404, where two of the regions in the representation 402correspond to the region 404. The regions of the representation 402 mayrepresent a set of inputs for the classification model.

According to embodiments, the representation 402 (and specifically, theregions thereof) may be input into a feature extractor component 405(which may be the feature extractor component 205 as discussed withrespect to FIG. 2 ). The feature extractor component 405 may extract aset of features from each of the regions included in the representation402, where the extracted sets of features may be input into a binaryclassifier 406 (which may be the classification model 206 as discussedwith respect to FIG. 2 ). The binary classifier 406 may be configured tooutput a binary value (e.g., a “0” or “1”), where a positive binaryvalue may be indicative of actual hail damage in the correspondingregion (407) and a negative binary value may be indicative of an absenceof hail damage in the corresponding region (408). A computing device mayassess or use the outputs 407, 408 in various calculations andfunctionalities.

FIG. 5 depicts a representation 500 of the feature extractionfunctionalities as discussed herein. The representation 500 includes aprediction 501 of hail damage that may be output by a CNN or other imagemodel (such as the hail damage detection model 204 as discussed withrespect to FIG. 2 ), and a raw image 502 from which the prediction 501may be generated by the image model. FIG. 5 further depicts specificmagnified sections of the raw image 502: a section 503 depicting thehail damage and a section 504 depicting a shingle surface. As may beinferred from FIG. 5 , the section 503 includes an area of contrast thatrepresents the hail damage, whereas the section 504 is more consistentin texture.

FIG. 6 depicts a representation 600 of how color features may beextracted from images. The representation 600 may include a section 603of an image depicting hail damage (which may be the same as the section503 of FIG. 5 ), and a section 604 of an image depicting a shinglesurface (which may be the same as the section 504 of FIG. 5 ). A featureextractor (such as the feature extractor 205 as discussed with respectto FIG. 2 ) may analyze the sections 603, 604 and generate respectivehistograms 605, 606 that may represent the colors depicted throughoutthe sections 603, 604. As depicted in FIG. 6 , the histogram 605indicates a wider range of colors in the section 603 depicting haildamage, versus the range of colors depicted in the histogram 606corresponding to the section 604 depicting the shingle surface.

FIG. 6 also depicts a set of statistics 607 associated with thehistograms 605, 606. In particular, the set of statistics 607 include acolor mean value, a color skewness value, and a color variation valuefor each of the histograms 605, 606. It should be appreciated thatalternative or additional color features and statistics thereof areenvisioned. In embodiments, a computing device may determine how toclassify the respective regions in the image sections 603, 604 based onthe histograms 605, 606 and/or the set of statistics 607. For example,the computing device may determine that because the color variation forthe histogram 605 (968.01) exceeds a threshold value (e.g., 900), thesection 603 should be classified as hail damage; similarly, thecomputing device may determine that because the color variation for thehistogram 606 (855.72) is less than the threshold value, the section 604should not be classified as hail damage.

FIGS. 7A and 7B depict respective representations 700, 720 of howtexture features may be extracted from images. Each of therepresentations 700, 720 may include a section 703 of an image depictinghail damage (which may be the same as the section 503 of FIG. 5 ), and asection 704 of an image depicting a shingle surface (which may be thesame as the section 504 of FIG. 5 ). A feature extractor (such as thefeature extractor 205 as discussed with respect to FIG. 2 ) may analyzethe sections 703, 704 and identify certain texture features from thesections 703, 704.

In particular, as depicted in FIG. 7A, the texture features includecontrast, homogeneity, and entropy. It should be appreciated thatalternative or additional texture features are envisioned. FIG. 7Adepicts a feature representation 705 associated with the section 703 anda feature representation 706 associated with the section 704. Inembodiments, a computing device may determine how to classify therespective regions in the image sections 703, 704 based on the featurerepresentations 705, 706. For example, the computing device maydetermine that the section 703 includes more contrast, less homogeneity,and more entropy than that of the section 704, and may thus classify thesection 703 as hail damage and the section 704 as non-hail damage.

The representation 720 of FIG. 7B depicts certain data and informationassociated with the texture feature extraction. In particular, therepresentation 720 may include a set of Gray-Level Co-OccurrenceMatrices 721 (GLCM) output as part of a textural analysis of the imagesections 703, 704. Additionally, the representation 720 may identify aset of statistical properties 722, including contrast, entropy, energy,homogeneity, and correlation. The computing device may facilitate a GLCManalysis and/or any of these statistical analyses to classify therespective regions in the image sections 703, 704.

FIG. 8 depicts a representation 800 of how shape features may beextracted from images. The representation 800 may include a processedsection 820 of an image depicting hail damage, and a processed section821 of an image depicting a shingle surface. A feature extractor (suchas the feature extractor 205 as discussed with respect to FIG. 2 ) mayanalyze the sections 820, 821 and identify certain shape features fromthe sections 820, 821.

In particular, as depicted in FIG. 8 , the shape features include aspectratio, area, and contour curvature. It should be appreciated thatalternative or additional shape features are envisioned. FIG. 8 depictsa feature representation 822 associated with the section 820 and afeature representation 823 associated with the section 821. Based on thefeature representations 822, 823, a computing device may determine thatthe section 820 includes an aspect ratio closer to one (1), a greater(or lesser) pixel area for potential damage, and a greater contourcurvature than that of the section 821. Similarly, the computing devicemay determine how to classify the respective regions in the imagesections 820, 821 based on the feature representations 822, 823. Forexample, the computing device may classify the image section 820 asdepicting hail damage and the image section 821 as not depicting haildamage, based on one or more of the shape features.

FIG. 9 depicts a block diagram of an exemplary computer-implementedmethod 900 in a processing server of analyzing image data toautomatically assess hail damage to a property. According to someembodiments, the processing server may store or otherwise have access toimage processing models and data related thereto. The method 900 may befacilitated by the processing server.

The method 900 may begin when the processing server trains (block 905) aconvolutional neural network (CNN) using a set of training datacomprising a set of training images and a set of training labels. Theprocessing server may also access (block 910) digital image datadepicting a roof of a property. In embodiments, the processing servermay receive the digital image data from a UAV, or may retrieve thedigital image data from memory.

The processing server may segment (block 915) the digital image datainto a set of digital images depicting a respective set of portions ofthe roof of the property. In embodiments, the processing server maysegment the digital image data using a sliding window technique. Theprocessing server may analyze (block 920), using the CNN, the set ofdigital images to identify a set of regions of potential hail damage.

The processing server may extract (block 925) a set of features fromeach of the set of regions of potential hail damage. In embodiments, theprocessing server may extract, from each of the set of regions, at leastone of a set of texture features, a set of color features, and a set ofshape features.

The processing server may analyze (block 930) the set of features usinga classification model to generate a set of outputs indicating apresence of hail damage in the set of digital images. In embodiments,the processing server may analyze the set of features using theclassification module to generate a set of binary outputs respectivelyindicating whether hail damage is present in the set of features.Alternatively, the processing server may input each of the set offeatures into the classification model and generate the set of outputs,each of which may include a confidence level indicating the presence ofhail damage in the set of digital images.

The processing server may calculate (block 935), based on the set ofoutputs, an estimated damage amount to the roof of the property.Additionally, the processing server may facilitate any insuranceprocessing, including a claim submission or policy modification, basedon the estimated damage amount.

FIG. 10 illustrates a diagram of an example server 1015 (such as theprocessing server 115 as discussed with respect to FIG. 1 ) in which thefunctionalities as discussed herein may be implemented. It should beappreciated that the server 1015 may be configured to be connect to andcommunicate with various entities, components, and devices, as discussedherein.

The server 1015 may include a processor 1072 as well as a memory 1078.The memory 1078 may store an operating system 1079 capable offacilitating the functionalities as discussed herein as well as a set ofapplications 1075 (i.e., machine readable instructions). For example,one of the set of applications 1075 may be an image training application1090 configured to train image models for use in subsequent imageanalysis, and an image analysis application 1091 configured to analyzeimages using image models. It should be appreciated that one or moreother applications 1092 are envisioned.

The processor 1072 may interface with the memory 1078 to execute theoperating system 1079 and the set of applications 1075. According tosome embodiments, the memory 1078 may also include image model data 1080that the image analysis application 1091 may access and utilize in imageanalyses. The memory 1078 may include one or more forms of volatileand/or non-volatile, fixed and/or removable memory, such as read-onlymemory (ROM), electronic programmable read-only memory (EPROM), randomaccess memory (RAM), erasable electronic programmable read-only memory(EEPROM), and/or other hard drives, flash memory, MicroSD cards, andothers.

The server 1015 may further include a communication module 1077configured to communicate data via one or more networks 1010. Accordingto some embodiments, the communication module 1077 may include one ormore transceivers (e.g., WWAN, WLAN, and/or WPAN transceivers)functioning in accordance with IEEE standards, 3GPP standards, or otherstandards, and configured to receive and transmit data via one or moreexternal ports 1076. For example, the communication module 1077 mayreceive, via the network 1010, digital image data captured by a set ofcomponents (e.g., aerial vehicles such as UAVs). For further example,the communication module 1077 may transmit notifications andcommunications to electronic devices associated with customers.

The server 1015 may further include a user interface 1081 configured topresent information to a user and/or receive inputs from the user. Asshown in FIG. 10 , the user interface 1081 may include a display screen1082 and I/O components 1083 (e.g., ports, capacitive or resistive touchsensitive input panels, keys, buttons, lights, LEDs, speakers,microphones). According to some embodiments, the user may access theserver 1015 via the user interface 1081 to review information and/orperform other functionalities. In some embodiments, the server 1015 mayperform the functionalities as discussed herein as part of a “cloud”network or may otherwise communicate with other hardware or softwarecomponents within the cloud to send, retrieve, or otherwise analyzedata.

In general, a computer program product in accordance with an embodimentmay include a computer usable storage medium (e.g., standard randomaccess memory (RAM), an optical disc, a universal serial bus (USB)drive, or the like) having computer-readable program code embodiedtherein, wherein the computer-readable program code may be adapted to beexecuted by the processor 1072 (e.g., working in connection with theoperating system 1079) to facilitate the functions as described herein.In this regard, the program code may be implemented in any desiredlanguage, and may be implemented as machine code, assembly code, bytecode, interpretable source code or the like (e.g., via C, C++, Java,Actionscript, Objective-C, Javascript, CSS, XML). In some embodiments,the computer program product may be part of a cloud network ofresources.

Embodiments of the techniques described in the present disclosure mayinclude any number of the following aspects, either alone orcombination:

1. A computer-implemented method in a processing server of analyzingimage data to automatically assess hail damage to a property, the methodcomprising: accessing digital image data depicting a roof of theproperty; segmenting, by a processor, the digital image data into a setof digital images depicting a respective set of portions of the roof ofthe property; analyzing, by the processor using a convolutional neuralnetwork (CNN), the set of digital images to identify a set of regions ofpotential hail damage; extracting, by the processor, a set of featuresfrom each of the set of regions of potential hail damage; and analyzing,by the processor, the set of features using a classification model togenerate a set of outputs indicating a presence of hail damage in theset of digital images.

2. The computer-implemented method of claim 1, wherein segmenting thedigital image data into the set of digital images comprises: segmentingthe digital image data into the set of digital images using a slidingwindow technique.

3. The computer-implemented method of either of claim 1 or claim 2,further comprising: training the convolutional neural network (CNN)using a set of training data comprising a set of training images and aset of training labels.

4. The computer-implemented method of any of claims 1-3, whereinanalyzing the set of features using the classification model comprises:analyzing, by the processor, the set of features using theclassification module to generate a set of binary outputs respectivelyindicating whether hail damage is present in the set of features.

5. The computer-implemented method of any of claims 1-4, furthercomprising: calculating, by the processor based on the set of outputs,an estimated damage amount to the roof of the property.

6. The computer-implemented method of any of claims 1-5, whereinextracting the set of features from each of the set of regions ofpotential hail damage comprises: extracting, by the processor from eachof the set of regions, at least one of a set of texture features, a setof color features, and a set of shape features.

7. The computer-implemented method of any of claims 1-6, whereinanalyzing the set of features using the classification model comprises:inputting, by the processor, each of the set of features into theclassification model; and after inputting each of the set of featuresinto the classification model, generating the set of outputs, each ofwhich comprises a confidence level indicating the presence of haildamage in the set of digital images.

8. A system for analyzing image data to automatically assess hail damageto a property, comprising: a memory configured to store non-transitorycomputer executable instructions; and a processor interfacing with thememory, and configured to execute the non-transitory computer executableinstructions to cause the processor to: access digital image datadepicting a roof of the property, segment the digital image data into aset of digital images depicting a respective set of portions of the roofof the property, analyze, using a convolutional neural network (CNN),the set of digital images to identify a set of regions of potential haildamage, extract a set of features from each of the set of regions ofpotential hail damage, and analyze the set of features using aclassification model to generate a set of outputs indicating a presenceof hail damage in the set of digital images.

9. The system of claim 8, wherein to segment the digital image data intothe set of digital images, the processor is configured to: segment thedigital image data into the set of digital images using a sliding windowtechnique.

10. The system of either of claim 8 or claim 9, wherein the processor isfurther configured to: train the convolutional neural network (CNN)using a set of training data comprising a set of training images and aset of training labels; and store, in the memory, the CNN that wastrained.

11. The system of any of claims 8-10, wherein to analyze the set offeatures using the classification model, the processor is configured to:analyze the set of features using the classification module to generatea set of binary outputs respectively indicating whether hail damage ispresent in the set of features.

12. The system of any of claims 8-11, wherein the processor is furtherconfigured to: calculate, based on the set of outputs, an estimateddamage amount to the roof of the property.

13. The system of any of claims 8-12, wherein to extract the set offeatures from each of the set of regions of potential hail damage, theprocessor is configured to: extract, from each of the set of regions, atleast one of a set of texture features, a set of color features, and aset of shape features.

14. The system of any of claims 8-13, wherein to analyze the set offeatures using the classification model, the processor is configured to:input each of the set of features into the classification model, andafter inputting each of the set of features into the classificationmodel, generate the set of outputs, each of which comprises a confidencelevel indicating the presence of hail damage in the set of digitalimages.

15. A non-transitory computer-readable storage medium configured tostore instructions, the instructions when executed by a processorcausing the processor to perform operations comprising: accessingdigital image data depicting a roof of a property; segmenting thedigital image data into a set of digital images depicting a respectiveset of portions of the roof of the property; analyzing, using aconvolutional neural network (CNN), the set of digital images toidentify a set of regions of potential hail damage; extracting a set offeatures from each of the set of regions of potential hail damage; andanalyzing the set of features using a classification model to generate aset of outputs indicating a presence of hail damage in the set ofdigital images.

16. The non-transitory computer-readable storage medium of claim 15,wherein segmenting the digital image data into the set of digital imagescomprises: segmenting the digital image data into the set of digitalimages using a sliding window technique.

17. The non-transitory computer-readable storage medium of either ofclaim 15 or claim 16, wherein analyzing the set of features using theclassification model comprises: analyzing the set of features using theclassification module to generate a set of binary outputs respectivelyindicating whether hail damage is present in the set of features.

18. The non-transitory computer-readable storage medium of any of claims15-17, wherein extracting the set of features from each of the set ofregions of potential hail damage comprises: extracting, from each of theset of regions, at least one of a set of texture features, a set ofcolor features, and a set of shape features.

19. The non-transitory computer-readable storage medium of any of claims15-18, wherein analyzing the set of features using the classificationmodel comprises: inputting each of the set of features into theclassification model; and after inputting each of the set of featuresinto the classification model, generating the set of outputs, each ofwhich comprises a confidence level indicating the presence of haildamage in the set of digital images.

20. The non-transitory computer-readable storage medium of any of claims15-19, wherein the operations further comprise: calculating, based onthe set of outputs, an estimated damage amount to the roof of theproperty.

Although the following text sets forth a detailed description ofnumerous different embodiments, it should be understood that the legalscope of the invention may be defined by the words of the claims setforth at the end of this patent. The detailed description is to beconstrued as exemplary only and does not describe every possibleembodiment, as describing every possible embodiment would beimpractical, if not impossible. One could implement numerous alternateembodiments, using either current technology or technology developedafter the filing date of this patent, which would still fall within thescope of the claims.

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Additionally, certain embodiments are described herein as includinglogic or a number of routines, subroutines, applications, orinstructions. These may constitute either software (e.g., code embodiedon a non-transitory, machine-readable medium) or hardware. In hardware,the routines, etc., are tangible units capable of performing certainoperations and may be configured or arranged in a certain manner. Inexample embodiments, one or more computer systems (e.g., a standalone,client or server computer system) or one or more hardware modules of acomputer system (e.g., a processor or a group of processors) may beconfigured by software (e.g., an application or application portion) asa hardware module that operates to perform certain operations asdescribed herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that may be permanently configured(e.g., as a special-purpose processor, such as a field programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC)) toperform certain operations. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that may betemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. Considering embodiments inwhich hardware modules are temporarily configured (e.g., programmed),each of the hardware modules need not be configured or instantiated atany one instance in time. For example, where the hardware modulescomprise a general-purpose processor configured using software, thegeneral-purpose processor may be configured as respective differenthardware modules at different times. Software may accordingly configurea processor, for example, to constitute a particular hardware module atone instance of time and to constitute a different hardware module at adifferent instance of time.

Hardware modules may provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multipleof such hardware modules exist contemporaneously, communications may beachieved through signal transmission (e.g., over appropriate circuitsand buses) that connect the hardware modules. In embodiments in whichmultiple hardware modules are configured or instantiated at differenttimes, communications between such hardware modules may be achieved, forexample, through the storage and retrieval of information in memorystructures to which the multiple hardware modules have access. Forexample, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it may becommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices, and may operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods or routines described herein may be at leastpartially processor-implemented. For example, at least some of theoperations of a method may be performed by one or more processors orprocessor-implemented hardware modules. The performance of certain ofthe operations may be distributed among the one or more processors, notonly residing within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment, or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the one or more processors or processor-implemented modulesmay be distributed across a number of geographic locations.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment may be included in at leastone embodiment. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

As used herein, the terms “comprises,” “comprising,” “may include,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the description. Thisdescription, and the claims that follow, should be read to include oneor at least one and the singular also may include the plural unless itis obvious that it is meant otherwise.

This detailed description is to be construed as examples and does notdescribe every possible embodiment, as describing every possibleembodiment would be impractical, if not impossible. One could implementnumerous alternate embodiments, using either current technology ortechnology developed after the filing date of this application.

The patent claims at the end of this patent application are not intendedto be construed under 35 U.S.C. § 112(f) unless traditionalmeans-plus-function language is expressly recited, such as “means for”or “step for” language being explicitly recited in the claim(s). Thesystems and methods described herein are directed to an improvement tocomputer functionality, and improve the functioning of conventionalcomputers.

What is claimed is:
 1. A computer-implemented method, comprising:accessing a digital image; identifying, by a processor and using aconvolutional neural network (CNN), a region of potential damagedepicted in the digital image; identifying, by the processor, a colorfeature indicative of potential damage and illustrated within the regionof potential damage by: determining a first section of the digital imagewithin the region of potential damage and a second section of thedigital image outside of the region of potential damage; and identifyingthe color feature within at least one of the first section or the secondsection based at least in part on a histogram that represents colorstatistics for colors depicted within the first section and the secondsection; and generating, by the processor, using a classification model,and based at least in part on the color feature, an output indicating apresence of damage associated with the region of potential damage,wherein the output is used to automatically determine an estimateddamage amount.
 2. The computer-implemented method of claim 1, whereinthe color statistics represent one or more of a color mean value, acolor skewness value, or a color variation value.
 3. Thecomputer-implemented method of claim 1, further comprising: training theCNN using training data comprising training images and training labels,wherein the trained CNN is configured to: determining a classificationfor the digital image based at least in part on at least one of thetraining images or the training labels, and generate an image depictingthe region of potential damage based at least in part on theclassification.
 4. The computer-implemented method of claim 3, wherein:the training images comprise at least a first image that depicts damageand a second image that does not depict the damage; and the traininglabels comprise data identifying a portion of the first image as a firstregion depicting the damage and identifying a remaining portion of thefirst image as a second region not depicting the damage, the remainingportion excluding the first region depicting the damage.
 5. Thecomputer-implemented method of claim 1, wherein identifying the colorfeature comprises determining that the color feature is associated witha color variation that meets or exceeds a threshold value.
 6. Thecomputer-implemented method of claim 1, wherein the digital image isdetermined based at least in part on a set of digital images using asliding window technique.
 7. The computer-implemented method of claim 1,wherein the output comprises a set of binary outputs indicating whetherdamage is represented in the color feature.
 8. The computer-implementedmethod of claim 1, wherein generating the output using theclassification model comprises: inputting, by the processor, the colorfeature into the classification model; and assigning a confidence levelto the output based at least in part on a likelihood of the colorfeature indicating the presence of damage in the digital image.
 9. Asystem, comprising: a memory configured to store non-transitory computerexecutable instructions; and a processor interfacing with the memory,and configured to execute the non-transitory computer executableinstructions, wherein execution of the instructions causes the processorto: access a digital image; identify, using a convolutional neuralnetwork (CNN), a region of potential damage depicted in the digitalimage; identify a color feature indicative of potential damage andillustrated within the region of potential damage by: determining afirst section of the digital image within the region of potential damageand a second section of the digital image outside of the region ofpotential damage; and identifying the color feature within at least oneof the first section and the second section based at least in part ahistogram that represents color statistics for colors depicted withinthe first section and the second section; and generate, using aclassification model and based at least in part on the color feature, anoutput indicating a presence of damage associated with the region ofpotential damage, wherein the output is used to automatically determinean estimated damage amount.
 10. The system of claim 9, wherein the colorstatistics represent one or more of a color mean value, a color skewnessvalue, or a color variation value.
 11. The system of claim 9, wherein togenerate the output using the classification model, the processor isconfigured to: input the color feature into the classification model togenerate a set of binary outputs indicating whether damage isrepresented in the color feature.
 12. The system of claim 9, whereinidentifying the color feature is based at least in part on determiningthat the color feature is associated with a color variation that meetsor exceeds a threshold value.
 13. The system of claim 9, wherein theoutput is further based at least in part on a shape feature extractedfrom the digital image.
 14. The system of claim 9, wherein to generatethe output using the classification model, the processor is configuredto: input the color feature into the classification model; and generatea confidence level based on a likelihood of the color feature indicatingthe presence of damage in the digital image.
 15. A non-transitorycomputer-readable storage medium configured to store instructions, theinstructions when executed by a processor causing the processor toperform operations comprising: accessing a digital image; identifying,using a convolutional neural network (CNN), a region of potential damagedepicted in the digital image; identifying, a color feature indicativeof potential damage and illustrated within the region of potentialdamage by: determining a first section of the digital image within theregion of potential damage and a second section of the digital imageoutside of the region of potential damage; and identifying the colorfeature within at least one of the first section and the second sectionbased at least in part on a histogram that represents color statisticsfor colors depicted within the first section and the second section; andgenerating, using a classification model, and based at least in part onthe color feature, an output indicating a presence of damage associatedwith the region of potential damage, wherein the output is used toautomatically determine an estimated damage amount.
 16. Thenon-transitory computer-readable storage medium of claim 15, wherein thedigital image is determined based at least in part on a set of digitalimages segmented using a sliding window technique.
 17. Thenon-transitory computer-readable storage medium of claim 15, wherein theoutput comprises a confidence level associated with the presence ofdamage in the digital image.
 18. The non-transitory computer-readablestorage medium of claim 15, wherein the output is further based at leastin part on a shape feature determined from the digital image.
 19. Thenon-transitory computer-readable storage medium of claim 15, wherein theoutput is further based at least in part on a texture feature determinedfrom the digital image.
 20. The non-transitory computer-readable storagemedium of claim 15, wherein the color statistics represent one or moreof a color mean value, a color skewness value, or a color variationvalue.